RGB (rojo, verde y azul) es un espacio definido de acuerdo con los colores reconocidos por el ojo humano y puede representar la mayoría de los colores. El espacio de color RGB se basa en el principio de mezcla de colores aditiva: los colores rojo, verde y azul se superponen continuamente al negro para obtener luz blanca.
HSV es un método de representación de puntos del espacio de color RGB en un cono invertido
H (Matiz) [matiz]: El matiz es el atributo básico del color, que es equivalente al nombre del color.
S (Saturación) [Saturación]: La pureza del color [Oscuridad], cuanto mayor es el valor, más puro es el color, menor es el valor, el gris gradualmente toma un valor de 0-100%
V (Valor) [Brillo]: Toma 0-max [El rango de valores de la computadora hsv está relacionado con la longitud de almacenamiento]
El espacio HSV se describe mediante un espacio cónico, V = 0 en el vértice del cono, H y S son indefinidos, lo que representa el negro. No hay definición en la superficie superior del cono V = max, S = 0, H no está definido, representa el blanco
import cv2
from IPython.display import Image
import numpy as np
from matplotlib import pyplot as plt
ima2=cv2.imread("ima.jpg",1)
ima22=cv2.cvtColor(ima2,cv2.COLOR_BGR2RGB)
plt.figure(1);
plt.imshow(ima22),plt.title('1'),plt.xticks([]), plt.yticks([])
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)
img_hsv=cv2.cvtColor(ima22,cv2.COLOR_RGB2HSV)
umbral_bajo= (70,100,100)
umbral_alto= (80,255,255)
mask= cv2.inRange(img_hsv, umbral_bajo, umbral_alto)
res= cv2.bitwise_and(ima22,ima22,mask=mask)
plt.figure(1);
plt.subplot(1,2,1);plt.imshow(mask, cmap='gray'),plt.title('1'),plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2);plt.imshow(res),plt.title('2'),plt.xticks([]), plt.yticks([])
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)
img_hsv=cv2.cvtColor(ima22,cv2.COLOR_RGB2HSV)
umbral_bajo= (110,100,100)
umbral_alto= (130,255,255)
mask= cv2.inRange(img_hsv, umbral_bajo, umbral_alto)
res= cv2.bitwise_and(ima22,ima22,mask=mask)
plt.figure(1);
plt.subplot(1,2,1);plt.imshow(mask, cmap='gray'),plt.title('1'),plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2);plt.imshow(res),plt.title('2'),plt.xticks([]), plt.yticks([])
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)
img_hsv=cv2.cvtColor(ima22,cv2.COLOR_RGB2HSV)
umbral_bajo= (26,100,100)
umbral_alto= (34,255,255)
mask= cv2.inRange(img_hsv, umbral_bajo, umbral_alto)
res= cv2.bitwise_and(ima22,ima22,mask=mask)
plt.figure(1);
plt.subplot(1,2,1);plt.imshow(mask, cmap='gray'),plt.title('1'),plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2);plt.imshow(res),plt.title('2'),plt.xticks([]), plt.yticks([])
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)
img_hsv=cv2.cvtColor(ima22,cv2.COLOR_RGB2HSV)
umbral_bajo= (141,100,100)
umbral_alto= (149,255,255)
mask= cv2.inRange(img_hsv, umbral_bajo, umbral_alto)
res= cv2.bitwise_and(ima22,ima22,mask=mask)
plt.figure(1);
plt.subplot(1,2,1);plt.imshow(mask, cmap='gray'),plt.title('1'),plt.xticks([]), plt.yticks([])
plt.subplot(1,2,2);plt.imshow(res),plt.title('2'),plt.xticks([]), plt.yticks([])
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)
ima=cv2.imread("ima.jpg",1)
ima=cv2.cvtColor(ima,cv2.COLOR_BGR2RGB)
R, G, B = cv2.split(ima)
plt.figure();
plt.subplot(1,3,1),plt.imshow(B,'gray'),plt.xticks([]), plt.yticks([]),plt.title('Rojo')
plt.subplot(1,3,2),plt.imshow(G,'gray'),plt.xticks([]), plt.yticks([]),plt.title('Verde')
plt.subplot(1,3,3),plt.imshow(R,'gray'),plt.xticks([]), plt.yticks([]),plt.title('Azul')
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)
ceros = np.zeros(ima.shape[:2],dtype='uint8')
R1 = cv2.merge([R,ceros,ceros])
G1 = cv2.merge([ceros,G,ceros])
B1 = cv2.merge([ceros,ceros,B])
plt.figure();
plt.subplot(1,3,1),plt.imshow(R1),plt.xticks([]), plt.yticks([]),plt.title('Rojo')
plt.subplot(1,3,2),plt.imshow(G1),plt.xticks([]), plt.yticks([]),plt.title('Verde')
plt.subplot(1,3,3),plt.imshow(B1),plt.xticks([]), plt.yticks([]),plt.title('Azul')
plt.subplots_adjust(top=4, bottom=0.1, left=0.10, right=3, hspace=0.1, wspace=0.2)